package a02mylist;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86131
 * Date: 2023-11-26
 * Time: 10:38
 */
public class A01_ListDemo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

      /*  list.add(1,"qqq");  //在集合中指定的位置插入指定的元素

        String remove = list.remove(0);//被删除的元素做\回
        System.out.println(remove);
*/
        /*String result = list.set(0, "qqq");
        System.out.println(result);

        String s = list.get(2);
        System.out.println(s);
        System.out.println(list);*/

      /*  //遍历
        //1.迭代器
        Iterator<String> it = list.iterator();//好比指针,默认指向0索引
        while(it.hasNext()){        //判断当前指向是否有元素
            String str = it.next(); //获取当前元素后,指针指向下一个元素
            System.out.println(str);
        }*/

        //2.增强for
        //下面的变量s只是第三方变量
        //循环过程中,依次表示集合的每个元素
       /* for (String s : list) {
            System.out.println(s);
        }*/

        //3.Lambda表达式
        //list.forEach(s-> System.out.println(s));

        //4.普通for循环
        /*for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
*/

        //5.列表迭代器
        //获取一个列表迭代器的对象,里面的指针指向0索引

        //额外添加了一个方法,在遍历的过程中可以添加元素
        ListIterator<String> it = list.listIterator();
        while(it.hasNext()) {
            String str = it.next();

            if ("bbb".equals(str)) {
                it.add("qqq");
            }
        }
        System.out.println(list);
    }
}
